Page({

  /**
   * 页面的初始数据
   */
  data: {
    hasUserInfo: false,
    userInfo: {},
    isLoading: false,
    isTap: false,
    id: Number
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },
  async login() {
    let that = this
    this.setData({
      isLoading: true
    })
    // 判断是否已经登录，如果已经登录，则走获取最新用户信息，否则则登录
    if (this.data.hasUserInfo) {
      this.getUserInfo()
      this.setData({
        isLoading: false
      })
    } else {
      // const {
      //   userInfo: {
      //     avatarUrl,
      //     nickName
      //   }
      // } = await wx.getUserProfile({
      //   desc: '用于完善用户信息',
      // })
      wx.getUserProfile({
        desc: '用于完善用户信息',
        async success(res) {
          let {
            userInfo: {
              avatarUrl,
              nickName
            }
          } = res
          let {
            result: {
              data
            }
          } = await wx.cloud.callFunction({
            name: 'login',
            data: {
              avatarUrl,
              nickName
            }
          })
          // 将用户信息存入本地
          wx.setStorageSync('userId', data._id)

          // 修改状态
          that.setData({
            userInfo: data,
            hasUserInfo: true
          })
          that.setData({
            isLoading: false
          })
        },
        fail(err) {
          that.setData({isLoading:false})
        }
      })

    }
  },

  // 点击交互效果
  tapStart(e) {
    let {
      currentTarget: {
        id
      }
    } = e
    id = Number(id)
    this.setData({
      isTap: true,
      id
    })
  },
  tapEnd() {
    let id = this.data.id
    this.setData({
      isTap: false,
      id: Number
    })
    // 跳转至设置页面
    if (id === 6) {
      wx.navigateTo({
        url: '../setUp/setUp',
      })
    }
  },
  tapCancel() {
    this.setData({
      isTap: false,
      id: Number
    })
  },

  // 跳转至设置页面


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },
  // 获取用户最新信息以更新状态
  async getUserInfo() {
    const userId = wx.getStorageSync('userId')
    // 判断本地是否有用户id，有则请求用户数据并更新，没有则清除用户信息
    if (userId) {
      let {
        result: {
          newData: {
            data
          }
        }
      } = await wx.cloud.callFunction({
        name: 'getUserInfo',
        data: {
          userId
        }
      })
      this.setData({
        hasUserInfo: true,
        userInfo: data
      })
    } else {
      this.setData({
        userInfo: '',
        hasUserInfo: false
      })
    }
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 在页面渲染的时候调用获取用户最新数据
    this.getUserInfo()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})